﻿Public Class Meta

    Private m_codigo As Integer
    Private m_codigoEmpleado As String
    Private m_descripcion As String
    Private m_fechaInicio As Date
    Private m_fechaEsperada As Date
    Private m_fechaReal As Nullable(Of Date)

    ''' <summary>
    ''' Constructor Vacio.
    ''' </summary>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Sub New()

    End Sub

    ''' <summary>
    ''' Constructor Sobrecargado.
    ''' </summary>
    ''' <param name="p_codigo">Codigo.</param>
    ''' <param name="p_codigoEmpleado">Codigo del Empleado.</param>
    ''' <param name="p_descripcion">Descripcion.</param>
    ''' <param name="p_fechaInicio">Fecha de inicio.</param>
    ''' <param name="p_fechaEsperada">Fecha esperada.</param>
    ''' <param name="p_fechaReal">Fecha real.</param>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Sub New(ByVal p_codigo As Integer, ByVal p_codigoEmpleado As String, ByVal p_descripcion As String, ByVal p_fechaInicio As Date, ByVal p_fechaEsperada As Date, ByVal p_fechaReal As Date)

        m_codigo = p_codigo
        m_codigoEmpleado = p_codigoEmpleado
        m_descripcion = p_descripcion
        m_fechaInicio = p_fechaInicio
        m_fechaEsperada = p_fechaEsperada
        m_fechaReal = p_fechaReal

    End Sub
    ''' <summary>
    ''' Codigo.
    ''' </summary>
    ''' <value>Codigo.</value>
    ''' <returns>Codigo.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property codigo() As Integer
        Get
            Return m_codigo
        End Get
        Set(ByVal p_codigo As Integer)
            m_codigo = p_codigo
        End Set
    End Property

    ''' <summary>
    ''' Codigo Empleado.
    ''' </summary>
    ''' <value>Codigo Empleado.</value>
    ''' <returns>Codigo Empleado.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property codigoEmpleado() As String
        Get
            Return m_codigoEmpleado
        End Get
        Set(ByVal p_codigoEmpleado As String)
            m_codigoEmpleado = p_codigoEmpleado
        End Set
    End Property

    ''' <summary>
    ''' Descripcion
    ''' </summary>
    ''' <value>Descripcion</value>
    ''' <returns>Decripcion</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property descripcion() As String
        Get
            Return m_descripcion
        End Get
        Set(ByVal p_descripcion As String)
            m_descripcion = p_descripcion
        End Set
    End Property

    ''' <summary>
    ''' Fecha de inicio.
    ''' </summary>
    ''' <value>Fecha de inicio.</value>
    ''' <returns>Fecha de inicio.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property fechaInicio() As Date
        Get
            Return m_fechaInicio
        End Get
        Set(ByVal p_fechaInicio As Date)
            m_fechaInicio = p_fechaInicio
        End Set
    End Property

    ''' <summary>
    ''' Fecha Esperada.
    ''' </summary>
    ''' <value>Fecha Esperada.</value>
    ''' <returns>Fecha Esperada.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property fechaEsperada() As Date
        Get
            Return m_fechaEsperada
        End Get
        Set(ByVal p_fechaEsperada As Date)
            m_fechaEsperada = p_fechaEsperada
        End Set
    End Property

    ''' <summary>
    ''' Fecha Real.
    ''' </summary>
    ''' <value>Fecha Real.</value>
    ''' <returns>Fecha Real.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 12/06/2010</remarks>
    Public Property fechaReal() As Nullable(Of Date)
        Get
            Return m_fechaReal
        End Get
        Set(ByVal p_fechaReal As Nullable(Of Date))
            m_fechaReal = p_fechaReal
        End Set
    End Property

    ''' <summary>
    ''' Descompone el objeto.
    ''' </summary>
    ''' <param name="p_meta">Objeto de tipo Meta el cual se va a descomponer en datos.</param>
    ''' <returns>Hashtable que contiene los datos del objeto.</returns>
    ''' <remarks>Creado Por: Roberto Fiatt, Fecha: 17/06/2010</remarks>
    Public Function toHashTable(ByVal p_meta As Meta) As Hashtable
        Dim datoMeta As New Hashtable

        datoMeta.Add("codigo", p_meta.codigo)
        datoMeta.Add("codigoEmpleado", p_meta.codigoEmpleado)
        datoMeta.Add("descripcion", p_meta.descripcion)
        datoMeta.Add("fechaInicio", p_meta.fechaInicio)
        datoMeta.Add("fechaEsperada", p_meta.fechaEsperada)
        datoMeta.Add("fechaReal", p_meta.fechaReal)

        Return datoMeta
    End Function

End Class
